home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / pyshared / AptUrl / Helpers.py < prev    next >
Text File  |  2009-09-18  |  2KB  |  63 lines

  1. # Copyright (c) 2008 Canonical
  2. #
  3. # AUTHOR:
  4. # Siegfried-A. Gevatter <rainct@ubuntu.com>
  5. #
  6. # This file is part of AptUrl
  7. #
  8. # AptUrl is free software; you can redistribute it and/or
  9. # modify it under the terms of the GNU General Public License as published
  10. # by the Free Software Foundation; either version 2 of the License, or (at
  11. # your option) any later version.
  12. #
  13. # AptUrl is distributed in the hope that it will be useful,
  14. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16. # General Public License for more details.
  17. #
  18. # You should have received a copy of the GNU General Public License
  19. # along with GDebi; if not, write to the Free Software
  20. # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  21.  
  22. import gettext
  23. import subprocess
  24.  
  25. def _(str):
  26.     return utf8(gettext.gettext(str))
  27.  
  28. def _n(singular, plural, n):
  29.     return utf8(gettext.ngettext(singular, plural, n))
  30.  
  31. def utf8(str):
  32.     if isinstance(str, unicode):
  33.         return str
  34.     try:
  35.         return unicode(str, 'UTF-8')
  36.     except:
  37.         # assume latin1 as fallback
  38.         return unicode(str, 'latin1')
  39.  
  40. def get_dist():
  41.     return subprocess.Popen(["lsb_release","-c","-s"],stdout=subprocess.PIPE).communicate()[0].strip()
  42.  
  43.  
  44. def parse_pkg(pkgobj):
  45.     summary = ""
  46.     description = ""
  47.     if pkgobj.description.count("\n") > 0:
  48.         summary, description = pkgobj.description.split('\n', 1)
  49.     else:
  50.         summary = pkgobj.description
  51.     lines = description.rstrip('\n').split('\n')
  52.     if len(lines) > 1 and lines[-1].startswith('Homepage: '):
  53.         homepage = lines[-1].split(' ', 1)[1]
  54.         description = '\n'.join(lines[:-1])
  55.     else:
  56.         homepage = pkgobj.homepage
  57.     return (summary, description, homepage)
  58.  
  59. def format_description(description):
  60.     const = 'APTURL_DOUBLE_EMPTY_LINE_PLACEHOLDER'
  61.     return description.replace('\n\n', const).replace('\n', ' ').replace(
  62.         const, '\n\n')
  63.